package dwei.ui.core
{
	import dwei.core.IUID;
	
	import flash.events.IEventDispatcher;

	public interface IValidate extends IEventDispatcher, IUID
	{
		/**
		 * 初始化对象
		 */		
		function initialize():void;
		/**
		 * 设置显示对象的坐标
		 * @param x
		 * @param y
		 * 
		 */		
		function move(x:int, y:int):void;
		/**
		 * 调用此方法将导致在呈示显示列表前调用组件的 validateProperties() 方法
		 */		
		function invalidateProperties():void;
		/**
		 * 调用此方法将导致在呈示显示列表前调用组件的 validateSize() 方法
		 */		
		function invalidateSize():void;
		/**
		 * 调用此方法将导致在呈示显示列表前调用组件的 validateSize() 方法
		 */		
		function invalidateDisplayList():void;
		/**
		 * 验证组件的属性
		 */		
		function validateProperties():void;
		/**
		 * 验证组件的度量大小
		 */		
		function validateSize():void;
		/**
		 * 验证子项的位置和大小，并绘制其他可视内容
		 */		
		function validateDisplayList():void;
		/**
		 * 标识显示对象是否已初始化完成
		 */		
		function get initialized():Boolean;
		/**
		 *  @private
		 */
		function set initialized(value:Boolean):void;
		/**
		 * 显示列表的层次关系，<code>UIStage.nestLevel</code> 为1，其直接子项的 <code>nestLevel</code> 为2，以此类推。0表示未添加到显示列表中
		 */		
		function get nestLevel():uint;
		/**
		 *  @private
		 */
		function set nestLevel(value:uint):void;
		/**
		 * 显示对象水平坐标
		 */		
		function get x():Number;
		/**
		 * @private
		 */		
		function set x(value:Number):void;
		/**
		 * 显示对象垂直坐标
		 */		
		function get y():Number;
		/**
		 * @private
		 */		
		function set y(value:Number):void;
		/**
		 * 显示对象宽度
		 */		
		function get width():Number;
		/**
		 * @private
		 */		
		function set width(value:Number):void;
		/**
		 * 显示对象高度
		 */		
		function get height():Number;
		/**
		 * @private
		 */		
		function set height(value:Number):void;
		/**
		 * 显示对象的百分比宽度
		 */		
		function get percentWidth():int;
		/**
		 * @private
		 */		
		function set percentWidth(value:int):void;
		/**
		 * 显示对象的百分比高度
		 */		
		function get percentHeight():int;
		/**
		 * @private
		 */		
		function set percentHeight(value:int):void;
//		/**
//		 * 在validateSize时，对显示对象测量的宽度
//		 */		
//		function get measuredWidth():int;
//		/**
//		 *  @private
//		 */
//		function set measuredWidth(value:int):void;
//		/**
//		 * 在validateSize时，对显示对象测量的高度
//		 */		
//		function get measuredHeight():int;
//		/**
//		 *  @private
//		 */
//		function set measuredHeight(value:int):void;
	}
}